home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C++ / Applications / Muddweller 1.2 / source code / Main / Macros.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-18  |  2.6 KB  |  119 lines  |  [TEXT/MPS ]

  1. /* Macros - Implementation of the login/logout macros and key bindings        */
  2.  
  3. #ifndef __MACROS__
  4. #define __MACROS__
  5.  
  6.  
  7.         // • MacApp
  8. #ifndef __UMacApp__
  9. #include "UMacApp.h"
  10. #endif
  11.  
  12.  
  13. //------------------------------------------------------------------------------
  14.  
  15. const int kCmdNone = 0;
  16. const int kCmdSend = 1;
  17. const int kCmdMatch = 2;
  18. const int kCmdWait = 3;
  19. const int kCmdPasswd = 4;
  20. const int kCmdQuiet = 5;
  21. const int kCmdEcho = 6;
  22. const int kLastCmd = 6;
  23.  
  24. short gBusyState;
  25. long gLastBusyTick;
  26.  
  27. //------------------------------------------------------------------------------
  28.  
  29. typedef struct MacroRec *MPtr, **MHandle;
  30.  
  31. struct MacroRec {
  32.     MHandle mNext;
  33.     Handle mText;
  34.     Boolean mShift;
  35.     Boolean mOption;
  36.     Boolean mControl;
  37.     unsigned char mChar;
  38.     unsigned char mCode;
  39. };
  40.  
  41. struct MacroDiskRec {
  42.     Boolean shift;
  43.     Boolean option;
  44.     Boolean control;
  45.     Boolean filler1;
  46.     unsigned char ch;
  47.     unsigned char code;
  48.     short textLen;
  49. };
  50.  
  51.  
  52. pascal void DisposMacroRec (MHandle theRec);
  53. pascal long MacroRecSize (MHandle theRec);
  54. pascal MHandle NewMacroRec (void);
  55. pascal MHandle ReadMacroRec (short theRefNum);
  56. pascal void WriteMacroRec (short theRefNum, MHandle theRec);
  57.  
  58. pascal void EditMacros (TDocument *aDocument);
  59.  
  60. pascal void InitMacros (void);
  61.  
  62.  
  63. //------------------------------------------------------------------------------
  64.  
  65. class TMacro: public TObject {
  66. public:
  67.     TMacro *fNext;
  68.     TDocument *fDocument;
  69.     MHandle fMRec;
  70.     long fMPos;
  71.     int fCmd;
  72.     Str255 fParm;
  73.     Boolean fCmdDone;
  74.     long fWaitEnd;
  75.     
  76.     virtual pascal void DoEcho (void);
  77.     virtual pascal void DoIdle (void);
  78.     virtual pascal void DoMatch (void);
  79.     virtual pascal void DoPasswd (void);
  80.     virtual pascal void DoQuiet (void);
  81.     virtual pascal void DoSend (void);
  82.     virtual pascal void DoWait (void);
  83.     virtual pascal void Free (void);
  84.     virtual pascal void IMacro (TDocument *itsDoc, MHandle itsRec);
  85.     virtual pascal void MacroDone (void);
  86. };
  87.  
  88.  
  89. //------------------------------------------------------------------------------
  90.  
  91. class TLoginMacro: public TMacro {
  92. public:
  93.     Boolean fOpenDone;
  94.     long fStartTicks;
  95.     
  96.     virtual pascal void DoIdle (void);
  97.     virtual pascal void IMacro (TDocument *itsDoc, MHandle itsRec);
  98. };
  99.  
  100.  
  101. //------------------------------------------------------------------------------
  102.  
  103. class TLogoutMacro: public TMacro {
  104. public:
  105.     Boolean fMacroDone;
  106.     Boolean fClosing;
  107.     CmdNumber fDoneCmd;
  108.  
  109.     virtual pascal void DoIdle (void);
  110.     virtual pascal void Free (void);
  111.     virtual pascal void IMacro (TDocument *itsDoc, MHandle itsRec);
  112.     virtual pascal void MacroDone (void);
  113. };
  114.  
  115.  
  116. //------------------------------------------------------------------------------
  117.  
  118. #endif
  119.